home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
extras
/
programm
/
gemfsc20
/
gemfsc20.lzh
/
GNUGEM27
/
AESOBJ.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-24
|
4KB
|
194 lines
/*
* Aes object library interface
*
* objc_add Add an object to an object tree
* objc_delete Delete an object from an object tree
* objc_draw Draw an Object
* objc_find Find an Object under mouse
* objc_offset Compute offset of object relative to screen
* objc_order Move an object to a new position
* objc_edit Let user edit text in an object
* objc_change Change an Objects state
*
* ++jrb bammi@cadence.com
* modified: mj -- ntomczak@vm.ucs.ualberta.ca
*/
#include "common.h"
#ifdef __DEF_ALL__
#define L_objc_add
#define L_objc_del
#define L_objc_dra
#define L_objc_fin
#define L_objc_off
#define L_objc_ord
#define L_objc_edi
#define L_objc_cha
#endif /* __DEF_ALL__ */
#ifdef L_objc_add
/* Add an Object to tree
* return 0 on error >0 no error
*/
int objc_add(void *Tree, int Parent, int Child)
{
_int_in[0] = Parent;
_int_in[1] = Child;
_addrin[0] = Tree;
return __aes__(AES_CONTROL_ENCODE(40, 2, 1, 1));
}
#endif /* L_objc_add */
#ifdef L_objc_del
/* Delete an Object from a tree
* return 0 on error >0 no error
*/
int objc_delete(void *Tree, int Object)
{
_addrin[0] = Tree;
_int_in[0] = Object;
return __aes__(AES_CONTROL_ENCODE(41, 1, 1, 1));
}
#endif /* L_objc_del */
#ifdef L_objc_dra
/* Draw an Object
* Tree Address of Tree containing Object
* Start Index of Starting Object
* Depth max depth to draw to
* Cx, Cy, Cw, Ch define the clipping rectangle
*
* return 0 on error >0 no error
*/
int objc_draw(void *Tree, int Start, int Depth,
int Cx, int Cy, int Cw, int Ch)
{
_int_in[0] = Start;
_int_in[1] = Depth;
_int_in[2] = Cx;
_int_in[3] = Cy;
_int_in[4] = Cw;
_int_in[5] = Ch;
_addrin[0] = Tree;
return __aes__(AES_CONTROL_ENCODE(42, 6, 1, 1));
}
#endif /* L_objc_dra */
#ifdef L_objc_fin
/* Find an object under mouse form
* Tree Address of tree containing object Start
* Start The object at which to start the search
* Depth Max depth of tree to search
* Mx, My mouse Location
*
* returns Index of object found (0 thru n), -1 == no object
*/
int objc_find(void *Tree, int Start, int Depth, int Mx, int My)
{
_int_in[0] = Start;
_int_in[1] = Depth;
_int_in[2] = Mx;
_int_in[3] = My;
_addrin[0] = Tree;
return __aes__(AES_CONTROL_ENCODE(43, 4, 1, 1));
}
#endif /* L_objc_fin */
#ifdef L_objc_off
/* Compute Object offset rel. to screen
* returns 0 on error >0 no error
*/
int objc_offset(void *Tree, int Object,
int *X, int *Y)
{
int retval;
_addrin[0] = Tree;
_int_in[0] = Object;
retval = __aes__(AES_CONTROL_ENCODE(44, 1, 3, 1));
*X = _int_out[1];
*Y = _int_out[2];
return retval;
}
#endif /* L_objc_off */
#ifdef L_objc_ord
/* Move an Object to NewPos in Tree
* returns 0 on error >0 no error
*/
int objc_order(void *Tree, int Object, int NewPos)
{
_int_in[0] = Object;
_int_in[1] = NewPos;
_addrin[0] = Tree;
return __aes__(AES_CONTROL_ENCODE(45, 2, 1, 1));
}
#endif /* L_objc_ord */
#ifdef L_objc_edi
/* Let user edit text in Object
* returns 0 on error >0 no error
*/
int objc_edit(void *Tree, int Object, int Char, int Index, int Kind,
int *NewIndex)
{
int retval;
_int_in[0] = Object;
_int_in[1] = Char;
_int_in[2] = Index;
_int_in[3] = Kind;
_addrin[0] = Tree;
retval = __aes__(AES_CONTROL_ENCODE(46, 4, 2, 1));
*NewIndex = _int_out[1];
return retval;
}
#endif /* L_objc_edi */
#ifdef L_objc_cha
/* Ch.State of Ob
* returns 0 on error >0 no error
*/
int objc_change(void *Tree, int Object, int Res, int Cx, int Cy, int Cw,
int Ch, int NewState, int Redraw)
{
_int_in[0] = Object;
_int_in[1] = Res; /* reserved (for what?) */
_int_in[2] = Cx;
_int_in[3] = Cy;
_int_in[4] = Cw;
_int_in[5] = Ch;
_int_in[6] = NewState;
_int_in[7] = Redraw;
_addrin[0] = Tree;
return __aes__(AES_CONTROL_ENCODE(47, 8, 1, 1));
}
#endif /* L_objc_cha */
/* - eof - */